# 使用 Node.js 官方镜像作为基础镜像
FROM node:18-alpine

# 安装必要的工具
RUN apk add --no-cache sqlite sqlite-dev python3 make g++ wget curl

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json
COPY package*.json ./

# 安装依赖
RUN npm config set registry https://registry.npmmirror.com/ && \
    npm install

# 复制源代码
COPY . .

# 创建必要的目录并设置权限
RUN mkdir -p /app/data /app/config && \
    chmod -R 755 /app/data

# 设置环境变量
ENV HOST=0.0.0.0
ENV NODE_ENV=production

# 暴露端口
EXPOSE 3000 3001

# 添加健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
    CMD wget --no-verbose --tries=1 --spider http://localhost:3001/health || exit 1

# 创建启动脚本
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh

# 使用启动脚本
ENTRYPOINT ["docker-entrypoint.sh"]

# 启动命令
CMD ["sh", "-c", "node src/server/index.js & DANGEROUSLY_DISABLE_HOST_CHECK=true HOST=0.0.0.0 WDS_SOCKET_PORT=0 npm start"] 